package com.five.admin.dao;

import com.five.entity.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author: star
 * @Date: 2021-05-18 19:28
 */
@Repository
public interface UserMapper {

    /**
     * 查询所有用户
     * @return 返回所有用户信息
     */
    List<User> selectAllUser();

    /**
     * 查询单个用户
     * @param user id/用户名/手机号/邮箱/昵称
     * @return 返回查询到的user对象
     */
    User selectUser(User user);

    /**
     * 通过用户名查询是否重复，通过id与本身区分开来（即只查询除自己以外的数据）
     * @param user 用户名、用户id
     * @return 有重复返回user对象，无重复返回null
     */
    User selectByUserNameExceptSelfId(User user);

    /**
     * 通过用户id删除用户信息
     * @param user 用户id
     */
    void deleteUser(User user);

    /**
     * 修改用户信息
     * @param user
     * @return
     */
    int updateUser(User user);

    /**
     * 插入用户信息
     * @param user 用户名、密码、手机号、邮箱、昵称、用户类型
     * @return
     */
    int insertUser(User user);

    /**
     * 模糊查询
     * @param nickname 昵称（暂时只有这个）
     * @return 返回多个用户信息
     */
    List<User> fuzzyQueryByNickName(String nickname);

    /**
     *管理员登录(根据电话和密码查询管理员)
     * @param telephone
     * @return
     */
    User selectAdmin(@Param("telephone") Long telephone);
}
